AWSクイックスタート:Oracle DB 12c on AWS を試してみた
こんにちは、菊池です。最近少し冷えるようになったので、寝ていると猫が布団に入ってくるようになりました。
はじめに
CloudFormationのテンプレートを利用することで、エンタープライズアプリケーションを簡単にAWSへデプロイ可能なAWSクイックスタートに、先日新たにOracle Database 12cのリファレンスが公開されました。
Oracle Database on the AWS Cloud: Quick Start Reference Deployment
特徴
- EC2にOracle DB 12c EEをインストール
- ライセンスはBYOLのみ
- ASMによるストレージ管理
- Data GuardによるMulti-AZに対応したActive-Standby構成
- Route53 を利用したスイッチオーバ時の接続先切替
- Oracle Secure Backup Cloud ModuleによるS3へのデータバックアップ(オプション)
先日のブログ記事で、マネージドサービスであるRDS for Oracleと、自身で構築/運用するOracle on EC2を比較しました。
[比較] RDS vs RDB on EC2:Oracle編
EC2でOracleを構築することにより柔軟で自由度の高い環境にできる一方で、構築の手間が大きいと書きました。今回公開されたテンプレートを使うことで迅速なデプロイが可能になり、RDSとの間をうまく埋めてくれるソリューションといえます。
構築してみた
さっそく、公開されたテンプレートを使ってデプロイしてみました。
Oracle Database 12c on the AWS Cloud: Quick Start Reference Deployment | AWS Documentation
テンプレートには、NAT/踏み台を含めたVPCを新規作成するものと、既存のVPCにDBのインスタンスのみを作成する2種類があります。今回は既存のVPCを使って、DB関連のリソースのみをデプロイするテンプレートを使用しました。
手順サマリ
- 利用するLinux AMIのサブスクライブ
- Oracle ソフトウェアの準備
- CloudFormationスタックの作成
1. 利用するLinux AMIのサブスクライブ
利用するOSをRHEL 7.2 または Oracle Linux 6.7 から選択し、Marketplaceでライセンス条項に同意します。今回はRHEL 7.2 を選択しました。
2. Oracle ソフトウェアの準備
インストールに必要な下記のソフトウェアバイナリを入手し、S3のバケットへアップロードしておきます。
- linuxamd64_12102_database_1of2.zip
- linuxamd64_12102_database_2of2.zip
- linuxamd64_12102_grid_1of2.zip
- linuxamd64_12102_grid_2of2.zip
- oracleasm-support-2.1.8-1.el6.x86_64.rpm
- oracleasmlib-2.0.4-1.el6.x86_64.rpm
検証用途であればOTNライセンスで入手可能です(本番利用不可)。
上記をS3にアップロードしておきます。
3. CloudFormationスタックの作成
テンプレートを使ってCloudFromationのスタックを作成します。
パラメータとして以下の項目が求められますので、それぞれ入力していきます。
項目 | 内容 | |
Network Configuration | VPCID | デプロイするVPC |
PrivateSubnet1ID | PrimaryDBが配置されるサブネット | |
PrivateSubnet2ID | StandbyDBが配置されるサブネット | |
BastionSecurityGroupID | DBインスタンスへのSSHを許可するSG | |
Amazon EC2 Configuration | KeyPairName | DBインスタンスにSSHする際のKeyPair |
OracleAMIOS | RHEL or Oracle Linux | |
OracleInstanceType | DBインスタンスのタイプ
今回はm3.mediumを選択 |
|
PrimaryIPAddress | PrimaryDBのIPアドレス | |
StandbyIPAddress | StandbyDBのIPアドレス | |
Oracle Database Configuration | DomainName | エンドポイントのドメイン名 |
DatabasePort | listenerのポート番号 | |
DatabaseName | PrimaryDBの名前 | |
DataGuardConfig | シングルかDG構成か
今回はData Guard構成 |
|
CharacterSet | DBのCharacter set | |
StandbyName | StandbyDBの名前 | |
DatabasePass | SYS/SYSTEMのPassword | |
AsmPass | ASM Password | |
EBSData | データ用のEBSサイズ
設定値x6のStripeとなる |
|
DataVolumeType | データ用EBSタイプ:PIOPS or GP2 | |
DataIOPS | データ用EBSのI/O(PIOPS時) | |
EBSReco | リカバリ用のEBSサイズ
設定値x3のStripeとなる |
|
RecoVolumeType | リカバリ用EBSタイプ:PIOPS or GP2 | |
RecoIOPS | リカバリ用EBSのI/O(PIOPS時) | |
InstallBucketName | Oracle SWを格納したS3のプレフィックス | |
Oracle Secure Backup Cloud Module (Optional) | OSBInstall | Secure Backupを有効にするか
今回は無効 |
OSBOTN | OTNのログインアカウント | |
OSBPass | OTNのログインパスワード | |
OSBBucketName | バックアップ先のS3バケット | |
OSBKey | S3へアクセスするためのAWS Access Key | |
OSBSecret | S3へアクセスするための AWS Secret Key | |
AWS Quick Start Configuration | QSS3BucketName | クイックスタートスクリプト等が格納されるS3のパス
通常は変更しない |
QSS3KeyPrefix |
今回はData Guardあり、m3.medium、Secure Backupなし、他はほぼデフォルトの構成でデプロイしました。
しばらくするとインスタンスが2台起動し、デプロイが完了します。
Oracle Database のインストール、設定まで自動で行われるため、Completeまでにそれなりの時間が必要です。今回は約1時間30分程度でした。そのうちPrimaryDB、StandbyDBの構築に程度40分ずつかかっています。構築中にEC2の負荷がそれなりにありましたので、高スペックのインスタンスタイプを使えばもう少し短縮されるかもしれません。
確認
デプロイができましたので、SSHでログインして環境を見てみます。
まずはsrvctl
でPrimaryDBの状態を確認します。
$ srvctl config database -d ORCL Database unique name: orcl Database name: orcl Oracle home: /u01/app/oracle/product/12.1.0.2/db_1 Oracle user: oracle Spfile: +DATA/ORCL/PARAMETERFILE/spfile.271.925773751 Password file: Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Disk Groups: DATA,RECO Services: OSDBA group: OSOPER group: Database instance: orcl
ASMの構成です。
$ srvctl config asm ASM home: <CRS home> Password file: +DATA/orapwasm ASM listener: LISTENER Spfile: +DATA/ASM/ASMPARAMETERFILE/registry.253.925772623 ASM diskgroup discovery string:
リスナーの構成です。
$ srvctl config listener Name: LISTENER Type: Database Listener Home: /u01/app/oracle/product/12.1.0.2/grid End points: TCP:1521 Listener is enabled.
続いて、SQL*Plusで接続してみます。
$ sqlplus sys/password@orcl as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Fri Oct 21 02:21:28 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL>
データファイルを確認。
SQL> select name from V$datafile; NAME -------------------------------------------------------------------------------- +DATA/ORCL/DATAFILE/system.258.925773111 +DATA/ORCL/DATAFILE/sysaux.257.925773047 +DATA/ORCL/DATAFILE/undotbs1.260.925773199 +DATA/ORCL/DATAFILE/example.270.925773257 +DATA/ORCL/DATAFILE/users.259.925773197 SQL>
Data Guardの状態を見てみます。
SQL> select database_role from v$database; DATABASE_ROLE ---------------- PRIMARY SQL>
ロールはPrimaryです。
SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE SQL>
READ/WRITEでオープンしています。
SQL> select protection_mode from v$database; PROTECTION_MODE -------------------- MAXIMUM PERFORMANCE SQL>
同期モードは最大パフォーマンスモードです。
SQL> select dataguard_broker from v$database; DATAGUAR -------- ENABLED SQL>
Brokerが有効になっています。
続いて、Standby側に接続してみます。
$ sqlplus sys/password@orclsb as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Fri Oct 21 02:23:34 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL>
接続できました。
SQL> select database_role from v$database; DATABASE_ROLE ---------------- PHYSICAL STANDBY SQL>
ロールはフィジカルスタンバイです。
SQL> SELECT open_mode FROM v$database; OPEN_MODE -------------------- MOUNTED SQL>
マウント状態です。
SQL> SELECT * FROM V$ARCHIVE_GAP; no rows selected SQL>
アーカイブギャップはありません。
最後に、Enterprise Manager Expressに接続してみました。SecurityGroupで5500を解放し、パブリックIPで接続してます。
sysユーザーでログインしました。
Enterprise Manager もしっかり使えます。
まとめ
テンプレートによるOracle Database 12cのデプロイを紹介しました。
わずか2時間程度の所用時間で、Oracleのインストール、ASMによるストレージ構成、Multi-AZのDataGuard + Brokerの環境が手に入ります。RDSでは満たせないオプション機能利用や、ハイスペックなインスタンスタイプ、ストレージが必要なケースにおいて、ゼロから構築する以外の強力な選択肢が提供されました。